﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Conexion;
using AccesoDatos.Manejador;
using AccesoDatos.Objetos;
using System.Data;

namespace AccesoDatos.Manejador
{
    public class Manejador_OrdenInterna
    {
        public bool GuardaOrdenInterna(clsCreaOrdenServicio objOrden)
        {
             bool Guarda = false;
             //int Fol = 0;
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@NuevoFolio", objOrden.Fol));
                lstParametros.Add(new clsParametros("@SucId", objOrden.Sucid));
                lstParametros.Add(new clsParametros("@Producto", objOrden.Producto));
                lstParametros.Add(new clsParametros("@SerieDañado", objOrden.Serie));
                lstParametros.Add(new clsParametros("@Observaciones", objOrden.Observacion));
                lstParametros.Add(new clsParametros("@Falla", objOrden.Falla));
                lstParametros.Add(new clsParametros("@Accesorios", objOrden.Accesorios));
                lstParametros.Add(new clsParametros("@DescripcionDetalle", objOrden.DescripcionDetalle));
                lstParametros.Add(new clsParametros("@Costo", objOrden.Valor.ToString()));
                lstParametros.Add(new clsParametros("@Condicion", objOrden.Condicion.ToString()));
                Guarda = objConn.Procedure_standart("sp_RMA_web_AddServicioInterno", lstParametros);
                return Guarda;
            }
            catch (Exception EX)
            { 
                
            }

            return Guarda;
        }
        public bool ValidaCodigoAutorizacion(string strCodigo)
        {
            bool Valida = false;
            string strCodigoAut = "";
            try
            {
                clsConexion objConn = new clsConexion();
                DataTable Datos = objConn.Datatable_standart("sp_RMA_web_SelectCodigoAutorizacion");
                foreach (DataRow r in Datos.Rows)
                {
                    strCodigoAut = r[0].ToString();
                }
                if (strCodigo == strCodigoAut)
                {
                    Valida = true;
                }
                else
                {
                    Valida = false;
                }
                return Valida;
                
            }
            catch (Exception ex)
            {
                return Valida;
            }
        }
        public DataTable RegresaCosto(string strSerie, string strProducto)
        {
            DataTable dtSerie = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();
            if (strSerie != "")
            {
                try
                {
                    lstParametros = new List<clsParametros>();
                    lstParametros.Add(new clsParametros("@Serie", strSerie));
                    dtSerie = objConn.Datatable_standart("sp_RMA_web_SeriesReporteInterno", lstParametros);
                    return dtSerie;
                }
                catch (Exception ex)
                {
                    return dtSerie;
                }
            }
            else
            {
                try
                {
                    lstParametros = new List<clsParametros>();
                    lstParametros.Add(new clsParametros("@Producto", strProducto));
                    dtSerie = objConn.Datatable_standart("sp_RMA_RegresaCosto", lstParametros);
                    return dtSerie;
                }
                catch (Exception ex)
                {
                    return dtSerie;
                }
            }
            
        }
        public DataTable RegresaUltimoRMAInt(string strAlm)
        {
            DataTable dtFolio = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();
            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Nemonico", strAlm));
                dtFolio = objConn.Datatable_standart("sp_RMA_web_UltimoRMA", lstParametros);
                return dtFolio;
            }
            catch (Exception ex)
            {
                return dtFolio;
            }
        }
        public bool GuardaMovimiento(string Folio, string Accion, string idUsuario, string Detalle, string status)
        {
            bool guarda = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Folio", Folio));
                lstParametros.Add(new clsParametros("@Accion", Accion));
                lstParametros.Add(new clsParametros("@id_usuario", idUsuario));
                lstParametros.Add(new clsParametros("@Detalle", Detalle));
                lstParametros.Add(new clsParametros("@Status", status));
                guarda = objConn.Procedure_standart("sp_RMA_web_Movimientos", lstParametros);
                return guarda;
            }
            catch (Exception)
            {

            }

            return guarda;
        }
        public DataTable RegresaCodigoInterno()
        {
            DataTable dtInterno = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                dtInterno = objConn.Datatable_standart("sp_RMA_CargaCodigoAut");
                return dtInterno;
            }
            catch (Exception ex)
            {
                return dtInterno;
            }
        }
        public string CrearClave()
        {
            string Clave;
            string Algoritmo = "";
            string Letras = "0x1o2m3b4r5a6H7b8c9dZ";
            int i = 1;
            int TamañoClave = 6;
            int largo = Letras.Length;
            Random random = new Random();

            while (i <= TamañoClave)
            {

                int numero = random.Next(1, largo);
                Algoritmo += Letras.Substring(numero, 1);
                i++;
            }
            Clave = Algoritmo.Trim();
            return Clave;
        }
        public bool CreaNuevoCodigo(string strCodigo, string strFecha)
        {
            bool guarda = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Codigo", strCodigo));
                lstParametros.Add(new clsParametros("@Fecha", strFecha));
                guarda = objConn.Procedure_standart("sp_RMA_GenerarCodigo", lstParametros);
                return guarda;
            }
            catch (Exception)
            {

            }

            return guarda;
        }
        public DataTable RegresaDescripcion(string strProducto)
        {
            DataTable dtDescripcion = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Producto", strProducto));
                dtDescripcion = objConn.Datatable_standart("sp_RMA_ObtieneDescripcion", lstParametros);
                return dtDescripcion;
            }
            catch (Exception ex)
            {
                return dtDescripcion;
            }


        }
        public DataTable RegresaArticulo(string strProducto)
        {
            DataTable dtArt = new DataTable();
            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@Articulo", strProducto));
                dtArt = objConn.Datatable_standart("sp_RMA_GETarticulos", lstParametros);
                return dtArt;
            }
            catch (Exception ex)
            {
                return dtArt;
            }


        }
        public bool ModificarFolio(string strSucID, string strUltimoRMA)
        {
            bool guarda = false;

            clsConexion objConn = new clsConexion();
            List<clsParametros> lstParametros = new List<clsParametros>();

            try
            {
                lstParametros = new List<clsParametros>();
                lstParametros.Add(new clsParametros("@SucId", strSucID));
                lstParametros.Add(new clsParametros("@UltimoRma", strUltimoRMA));
                guarda = objConn.Procedure_standart("sp_RMA_ModificarFolio", lstParametros);
                return guarda;
            }
            catch (Exception)
            {

            }

            return guarda;
        }
        
        


        
    }
}
